import { wechatInitConfig} from "./wechatConfig";
// import default from "../../router/index";

export {}
 
let localSource = null;
/** 判断当前客户端是否支持指定JS接口 */
const checkJsApi = (wx) => {
    wx.checkJsApi({
      jsApiList: [
        'getNetworkType',
        'previewImage'
      ],
      success: function (res) {
        alert(JSON.stringify(res));
      }
    });
}
/** 获取“分享到朋友圈”按钮点击状态及自定义分享内容接口（即将废弃）start */
const onMenuShareTimeline = (wx) => {
    wx.onMenuShareTimeline({
      title: '微信分享测试', // 分享标题
      link: 'http://arraon.natapp1.cc/wechat/getAuthorize?returnUrl=personal', // 分享链接，该链接域名或路径必须与当前页面对应的公众号JS安全域名一致
      imgUrl: 'http://thirdwx.qlogo.cn/mmopen/vi_32/eLTNk2XVc04EOPbmReTAfibQ8MIJusEWK7BglGMJnUQiafW5l2Aqb1FvCuZR7FJKjwrHfZrP4HKJEO3O3NcCibOPg/132', // 分享图标
      success: function () {
      // 用户点击了分享后执行的回调函数
    }
    })
}
/** 获取“分享到朋友圈”按钮点击状态及自定义分享内容接口（即将废弃）end */

/** 获取“分享到QQ”按钮点击状态及自定义分享内容接口（即将废弃）start */
const onMenuShareQQ = (wx) => {
  wx.onMenuShareQQ({
    title: '分享到qq的测试', // 分享标题
    desc: '分享到qq的测试详情', // 分享描述
    link: 'http://web-yaaron.s1.natapp.cc/wechatPower', // 分享链接
    imgUrl: 'http://thirdwx.qlogo.cn/mmopen/vi_32/eLTNk2XVc04EOPbmReTAfibQ8MIJusEWK7BglGMJnUQiafW5l2Aqb1FvCuZR7FJKjwrHfZrP4HKJEO3O3NcCibOPg/132', // 分享图标
    success: function () {
    // 用户确认分享后执行的回调函数
    },
    cancel: function () {
    // 用户取消分享后执行的回调函数
    }
  });
}
/** 获取“分享到QQ”按钮点击状态及自定义分享内容接口（即将废弃）start */

/** 获取“分享到QQ空间”按钮点击状态及自定义分享内容接口（即将废弃）start */
const onMenuShareQZone = (wx) => {
  wx.onMenuShareQZone({
    title: '分享到qq空间测试', // 分享标题
    desc: '分享到qq空间测试描述', // 分享描述
    link: 'http://web-yaaron.s1.natapp.cc/wechatPower', // 分享链接
    imgUrl: 'http://thirdwx.qlogo.cn/mmopen/vi_32/eLTNk2XVc04EOPbmReTAfibQ8MIJusEWK7BglGMJnUQiafW5l2Aqb1FvCuZR7FJKjwrHfZrP4HKJEO3O3NcCibOPg/132', // 分享图标
    success: function () {
    // 用户确认分享后执行的回调函数
    },
    cancel: function () {
    // 用户取消分享后执行的回调函数
    }
  });
}
/** 获取“分享到QQ空间”按钮点击状态及自定义分享内容接口（即将废弃）end */

/** 获取“分享给朋友”按钮点击状态及自定义分享内容接口（即将废弃）start */
const onMenuShareAppMessage = (wx) => {
  wx.onMenuShareAppMessage({
    title: '分享好友测试1111111', // 分享标题
    desc: '分享描述111111111', // 分享描述
    link: 'http://arraon.natapp1.cc/wechat/getAuthorize?returnUrl=home', // 分享链接，该链接域名或路径必须与当前页面对应的公众号JS安全域名一致
    imgUrl: 'http://thirdwx.qlogo.cn/mmopen/vi_32/eLTNk2XVc04EOPbmReTAfibQ8MIJusEWK7BglGMJnUQiafW5l2Aqb1FvCuZR7FJKjwrHfZrP4HKJEO3O3NcCibOPg/132', // 分享图标
    type: '', // 分享类型,music、video或link，不填默认为link
    dataUrl: '', // 如果type是music或video，则要提供数据链接，默认为空
    success: function () {
    // 用户点击了分享后执行的回调函数
    }
  });
}
/** 获取“分享给朋友”按钮点击状态及自定义分享内容接口（即将废弃）end */

/** 获取“分享到腾讯微博”按钮点击状态及自定义分享内容接口start */
const onMenuShareWeibo = (wx) => {
  wx.onMenuShareWeibo({
    title: '分享到腾讯微博测试', // 分享标题
    desc: '分享到腾讯微博测试的详情', // 分享描述
    link: 'http://web-yaaron.s1.natapp.cc/wechatPower', // 分享链接
    imgUrl: 'http://thirdwx.qlogo.cn/mmopen/vi_32/eLTNk2XVc04EOPbmReTAfibQ8MIJusEWK7BglGMJnUQiafW5l2Aqb1FvCuZR7FJKjwrHfZrP4HKJEO3O3NcCibOPg/132', // 分享图标
    success: function () {
    // 用户确认分享后执行的回调函数
    },
    cancel: function () {
    // 用户取消分享后执行的回调函数
    }
  });
} 
/** 获取“分享到腾讯微博”按钮点击状态及自定义分享内容接口end */

/** 批量隐藏功能按钮接口start */
const hideMenuItems = (wx) => {
  wx.hideMenuItems({
    menuList: ["menuItem:share:QZone"] // 要隐藏的菜单项，只能隐藏“传播类”和“保护类”按钮，所有menu项见附录3
  });
}
/** 批量隐藏功能按钮接口end */

/** 批量显示功能按钮接口start */
const showMenuItems = (wx) => {
  wx.showMenuItems({
    menuList: ["menuItem:share:QZone"] // 要显示的菜单项，所有menu项见附录3
  });
}
/** 批量显示功能按钮接口end */

/** 隐藏所有非基础按钮接口start */
const hideAllNonBaseMenuItem = (wx) => {
  wx.hideAllNonBaseMenuItem();
}
/** 隐藏所有非基础按钮接口end */

/** 显示所有非基础按钮接口start */
const showAllNonBaseMenuItem = (wx) => {
  wx.showAllNonBaseMenuItem();
}
/** 显示所有非基础按钮接口end */

/** 开始录音接口start */
const startRecord = (wx) => {
  
  wx.startRecord({
    success: function() {
      alert('成功调起录音')
    }
  });
}
/** 开始录音接口end */

/** 停止录音接口start */
const stopRecord = (wx) => {
  wx.stopRecord({
    success: function (res) {
    var localId = res.localId;
    localSource = localId;
    console.log("localId",localId);
    }
  });
}
/** 停止录音接口end */

/** 监听录音自动停止接口start */
const onVoiceRecordEnd = (wx) => {
  wx.onVoiceRecordEnd({
    // 录音时间超过一分钟没有停止的时候会执行 complete 回调
    complete: function (res) {
      console.log("tititi")
    var localId = res.localId;
    }
  });
}
/** 监听录音自动停止接口end */

/** 播放语音接口start */
const playVoice = wx => {
  console.log(111222);
  wx.playVoice({
    localId: localSource // 需要播放的音频的本地ID，由stopRecord接口获得
    });
}
/** 播放语音接口end */

/** 监听语音播放完毕接口start */
const onVoicePlayEnd = wx => {
  wx.onVoicePlayEnd({
    success: function (res) {
      console.log("录音播放完毕")
    var localId = res.localId; // 返回音频的本地ID
    }
  });
}
/** 监听语音播放完毕接口end */

/** 暂停播放接口start */
const pauseVoice = wx => {
  wx.pauseVoice({
    localId: localSource // 需要暂停的音频的本地ID，由stopRecord接口获得
    });
}
/** 暂停播放接口end */

/** 停止播放接口start */
const stopVoice = wx => {
  wx.stopVoice({
    localId: localSource // 需要停止的音频的本地ID，由stopRecord接口获得
    });
}
/** 停止播放接口end */

/** 上传语音接口start */
const uploadVoice = wx => {
  wx.uploadVoice({
    localId: localSource, // 需要上传的音频的本地ID，由stopRecord接口获得
    isShowProgressTips: 1, // 默认为1，显示进度提示
    success: function (res) {
    var serverId = res.serverId; // 返回音频的服务器端ID
    console.log("上传成功", serverId)
    }
  });
}
/** 上传语音接口end */

/** 下载语音接口start */
const downloadVoice = wx => {
  wx.downloadVoice({
    serverId: localSource, // 需要下载的音频的服务器端ID，由uploadVoice接口获得
    isShowProgressTips: 1, // 默认为1，显示进度提示
    success: function (res) {
    var localId = res.localId; // 返回音频的本地ID
    console.log("下载成功", localId)
    }
  });
}
/** 下载语音接口end */

/** 识别音频并返回识别结果接口start */
const translateVoice = wx => {
  wx.translateVoice({
    localId: localSource, // 需要识别的音频的本地Id，由录音相关接口获得
    isShowProgressTips: 1, // 默认为1，显示进度提示
    success: function (res) {
    alert(res.translateResult); // 语音识别的结果
    }
  });
}

/** 识别音频并返回识别结果接口end */

/** 拍照或从手机相册中选图接口 start */
const chooseImage = (wx, callBack) => {
  wx.chooseImage({
    count: 9, // 默认9
    sizeType: ['original', 'compressed'], // 可以指定是原图还是压缩图，默认二者都有
    sourceType: ['album', 'camera'], // 可以指定来源是相册还是相机，默认二者都有
    success: function (res) {
      var localIds = res.localIds; // 返回选定照片的本地ID列表，localId可以作为img标签的src属性显示图片
      if(callBack) {
        callBack(localIds);
      }
    
    }
    });
}
/** 拍照或从手机相册中选图接口 end */

/** 预览图片接口start */
const previewImage = info => {
  info.wx.previewImage({
    current: info.currentSrc, // 当前显示图片的http链接
    urls: [info.currentSrc] // 需要预览的图片http链接列表
  });
}
/** 预览图片接口end */

/** 上传图片接口start */
const uploadImage = (info, callBack) => {
  info.wx.uploadImage({
    localId: info.localId, // 需要上传的图片的本地ID，由chooseImage接口获得
    isShowProgressTips: 1, // 默认为1，显示进度提示
    success: function (res) {
    var serverId = res.serverId; // 返回图片的服务器端ID
    if(callBack) {
      callBack(serverId)
    }
    console.log("serverId=", serverId)
    }
  });
}
/** 上传图片接口end */

/** 下载图片接口start */
const downloadImage = (info, callBack) => {
  info.wx.downloadImage({
    serverId: info.serverId, // 需要下载的图片的服务器端ID，由uploadImage接口获得
    isShowProgressTips: 1, // 默认为1，显示进度提示
    success: function (res) {
    var localId = res.localId; // 返回图片下载后的本地ID
    console.log('下载图片成功', localId)
    if(callBack) {
      callBack(localId)
    }
    }
  });
}
/** 下载图片接口end */

/** 获取网络状态接口start */
const getNetworkType = wx => {
  wx.getNetworkType({
    success: function (res) {
    var networkType = res.networkType; // 返回网络类型2g，3g，4g，wifi
    alert(networkType)
    }
  });
}
/** 获取网络状态接口end */

/** 使用微信内置地图查看位置接口start */
const openLocation = info => {
  info.wx.openLocation({
    latitude: info.latitude, // 纬度，浮点数，范围为90 ~ -90
    longitude: info.longitude, // 经度，浮点数，范围为180 ~ -180。
    name: '', // 位置名
    address: '', // 地址详情说明
    scale: 1, // 地图缩放级别,整形值,范围从1~28。默认为最大
    infoUrl: '' // 在查看位置界面底部显示的超链接,可点击跳转
  });
}

/** 使用微信内置地图查看位置接口end */

/** 获取地理位置接口start */
const getLocation = (wx, callBack) => {
  wx.getLocation({
    type: 'wgs84', // 默认为wgs84的gps坐标，如果要返回直接给openLocation用的火星坐标，可传入'gcj02'
    success: function (res) {
    var latitude = res.latitude; // 纬度，浮点数，范围为90 ~ -90
    var longitude = res.longitude; // 经度，浮点数，范围为180 ~ -180。
    var speed = res.speed; // 速度，以米/每秒计
    var accuracy = res.accuracy; // 位置精度
    callBack(res);
    }
  });
}
/** 获取地理位置接口end */

/** 隐藏右上角菜单接口start */
const hideOptionMenu = wx => {
  wx.hideOptionMenu();
}
/** 隐藏右上角菜单接口end */

/** 显示右上角菜单接口start */
const showOptionMenu = wx => {
  wx.showOptionMenu();
}
/** 显示右上角菜单接口end */

/** 关闭当前网页窗口接口 */
const closeWindow = wx => {
  wx.closeWindow();
}
/** 关闭当前网页窗口接口 */

/** 扫一扫 二维码 start */
const scanQRCode = (wx) => {
  wx.scanQRCode({
    needResult: 0, // 默认为0，扫描结果由微信处理，1则直接返回扫描结果，
    scanType: ["qrCode","barCode"], // 可以指定扫二维码还是一维码，默认二者都有
    success: function (res) {
      var result = res.resultStr; // 当needResult 为 1 时，扫码返回的结果
    }
  });
}
/** 扫一扫 二维码 end */

/** 跳转微信商品页接口start */
// 暂无使用
/** 跳转微信商品页接口end */

/** 调用微信接口控制器 */
export function wxchatPowers(info, callBack){
  wechatInitConfig( wx => {
    info.wx = wx;
    wx.ready(function () {
      switch(info.type) {
        case 0:
        checkJsApi(wx) // 判断当前客户端是否支持指定JS接口
        break;
        case 1:
        onMenuShareTimeline(wx) // 获取“分享到朋友圈”按钮点击状态及自定义分享内容接口
        break;
        case 2:
        onMenuShareAppMessage(wx) // 获取“分享给朋友”按钮点击状态及自定义分享内容接口
        break;
        case 3:
        onMenuShareQQ(wx) // 获取“分享到QQ”按钮点击状态及自定义分享内容接口
        break;
        case 4:
        onMenuShareWeibo(wx) // 获取“分享到腾讯微博”按钮点击状态及自定义分享内容接口
        break;
        case 5:
        onMenuShareQZone(wx) // 获取“分享到QZone”按钮点击状态及自定义分享内容接口
        break;
        case 6:
        hideMenuItems(wx) // 批量隐藏功能按钮接口
        break;
        case 7:
        showMenuItems(wx) // 批量显示功能按钮接口
        break;
        case 8:
        hideAllNonBaseMenuItem(wx) // 隐藏所有非基础按钮接口
        break;
        case 9:
        showAllNonBaseMenuItem(wx) // 显示所有非基础按钮接口
        break;
        case 10:
        startRecord(wx) // 开始录音接口
        break;
        case 11:
        stopRecord(wx) // 停止录音接口
        break;
        case 12:
        onVoiceRecordEnd(wx) // 监听录音自动停止接口
        break;
        case 13:
        playVoice(wx) // 播放语音接口
        break;
        case 14:
        onVoicePlayEnd(wx) // 监听语音播放完毕接口
        break;
        case 15:
        pauseVoice(wx) // 暂停播放接口
        break;
        case 16:
        stopVoice(wx) // 停止播放接口
        break;
        case 17:
        uploadVoice(wx) // 上传语音接口
        break;
        case 18:
        downloadVoice(wx) // 下载语音接口
        break;
        case 19:
        translateVoice(wx) // 识别音频并返回识别结果接口
        break;
        case 20:
        scanQRCode(wx) // 调起微信扫一扫接口
        break;
        case 21:
        chooseImage(wx, callBack) // 拍照或从手机相册中选图接口
        break;
        case 22:
        previewImage(info) // 预览图片接口
        break;
        case 23:
        uploadImage(info, callBack) // 上传图片接口
        break;
        case 24:
        downloadImage(info) // 下载图片接口
        break;
        case 25:
        getNetworkType(wx) // 获取网络状态接口
        break;
        case 26:
        openLocation(info) // 使用微信内置地图查看位置接口
        break;
        case 27:
        getLocation(wx, callBack) // 获取地理位置接口
        break;
        case 28:
        hideOptionMenu(wx) // 隐藏右上角菜单按钮
        break;
        case 29:
        showOptionMenu(wx) // 显示右上角菜单接口
        break;
        case 30:
        closeWindow(wx) // 关闭当前网页窗口接口
        break;
        case 31:
        // 暂无使用 跳转微信商品页接口
        break;
        default:
      }
      });
      
      wx.error(function (res) {
        alert(res.errMsg);
      });

    })
}








